# 流程控制语句
# if   while

# 程序默认自上而下 依次执行

# if 条件: # 条件的执行结果一定是个bool
# 缩进4个空格,语句

# if 可以让我们的程序选择性的执行某些语句
var = 1
if var == 1:
    print(1)
elif var == 2:  # elif 条件:
    print(2)
else:
    print('其他..')

# while 循环
var = 1
while var < 5:
    print(var)
    var += 1

print('循环结束')
# 执行流程  1 判断条件  , 2.1 满足条件-->走循环体里面 -->走完循环体 -->是否满足条件
#                         2.2 不满足条件 --> 不走循环体(跳出循环)

# 我们可以通过break跳出循环
while True:
    print('break语句..')
    break
    print('break语句..after')

# 通常break都是配合if 来使用

var = 1
while True:
    print('var:', var)
    if var > 4:
        break
    var = var + 1


# 流程控制语句

# 函数

# 以上 都是一行一行的代码

# 函数就是对多行代码的封装,完成某种特定的功能

# 函数的语法,
# 函数的声明
def fun():
    print(1)
    print(2)
    print(3)
    print(4)


# 函数的调用

fun()
fun()
fun()

# 函数的作用 :提高代码的复用性

# 变量 代码  函数 类 模块 库 项目
var = 1


# 完成某种特定功能的代码

def toeat():
    print('你去吃饭..')


print(toeat())


def daifan():
    print('带饭...')
    return '饭'


res = daifan()
print(res)


def getsum():
    return 1 + 1


print(getsum())


# 求 两个数的和

# 分析 有两个变量
# ()里的变量叫做参数
# 声明的时候参数 叫做形式参数 形参
def getsum1(a, b):
    print('a:', a)
    print('b:', b)
    return a + b


# 我们调用的时候,传进来的 参数叫做实际参数,也叫实参
print(getsum1(7, 6))


# 可变参数

def fun1(*var):
    print(var)


fun1(1, 3, 'hhh')

# getsum1(b = 9,a = 30)
getsum1(b=9, a=30)


# 默认值参数
def getsum2(a, b=2):
    print('a:', a)
    print('b:', b)
    return a + b


getsum2(3)
getsum2(3, 10)


# 万能参数书写方式
def fun2(*var, **kwargs):
    print(var)
    print(kwargs)


fun2(2, 4, a=10, b=20)
